......

Creación de scripts para el mIRC
6º parte: Identificadores

By SomaTic
(sucubus@arrakis.es)
  Lista de identificadores automáticos del mIRC 5.1

El entorno del mIRC provee de una serie de identificadores o funciones que devuelven automáticamente un valor para su uso en definiciones de alias, popups y eventos. Todos ellos están precedidos para su identificación por el símbolo $.

Cuando el mIRC, en la ejecución de un script, encuentra uno de estos identificadores, lo sustituye por el valor que este devuelve. Es importante tener en cuenta que estos identificadores deben de ir siempre especificados entre dos espacios en blanco, de lo contrario el mIRC no los identificará como tales.

A continuación se relaciona una lista con la mayoría de los identificadores que se encuentran disponibles en la versión 5.1 del mIRC.

IDENTIFICADORES DE TIEMPO Y FECHA:

$ctime

Devuelve el número total de segundos transcurridos desde las 0 horas de 1 de enero de 1970.

$date

Devuelve la fecha actual en formato: día/mes/año.

$day

Devuelve el nombre del actual día de la semana.

$duration(nº)

Devuelve el número especificado de segundos transformado al formato: semanas/días/horas/minutos/segundos.

$fulldate

Devuelve la fecha en formato largo, por ejemplo: Wed Jun 26 21:41:02 1996

$idle

Devuelve nuestro actual tiempo idle (Este tiempo es el que devolveremos ante un requerimiento finger).

$ltimer

Devuelve el número del último timer activado con el comando /timer

$online

Devuelve el número de segundos transcurridos desde que se puso a cero el reloj contador del mIRC.

$ticks

Devuelve el número de ticks desde que se inició el sistema operativo.

$time

Devuelve la hora actual en formato horas/minutos/segundos.

$timer(0)

Devuelve el número de timers activos en el momento actual.

$timer(nº)

Devuelve todas las propiedades de timer cuyo número se especifica: comando, tiempo, repeticiones, retardo y tipo.

$timer(nº).com

Devuelve el comando asociado al timer especificado.

$timer(nº).type

Devuelve el tipo de status del timer especificado: online/offline

$timestamp

Devuelve el timer actual en formato: [xx:xx]

IDENTIFICADORES DE NÚMEROS Y TEXTOS

$abs(nº)

Devuelve el valor absoluto de un número (elimina el signo).

$asc(C)

Devuelve el número ASCII del carácter C.

$calc(operaciones)

Devuelve el resultado de las operaciones especificadas. Por ejemplo:

$calc(3.14159 * (2 ^ %x % 3) - ($ticks / (10000 + 1)))

$chr(nº)

Devuelve el carácter ASCII correspondiente al número especificado. Por ejemplo:

$chr(65) Devolverá el carácter A

$count(cadena_1,cadena_2)

Devuelve el número de veces que cadena_2 se encuentra repetida dentro de cadena_1.

Por ejemplo:

$count (jajajajaja, ja) Devolverá: 5

$int(nº)

Devuelve la parte entera de un número. Por ejemplo:

$int(3,14159) Devolverá: 3

$left(cadena,N)

Devuelve los N primeros caracteres de una cadena, por ejemplo:

$left(goodbye,4) Devolverá: good

$right(cadena,N)

Devuelve los N últimos caracteres de una cadena, por ejemplo:

$right(othello,5) Devolverá: hello

$len(cadena)

Devuelve el número de caracteres de una cadena.

$lower(texto)

Retorna todos los caracteres de una cadena convertidos a minúsculas, por ejemplo:

$lower(HOLA) Devolverá: "hola"

$mid(cadena,posición,número)

Devuelve el número especificado de caracteres de una cadena desde una posición dada. Por ejemplo:

$mid(othello,3,4) Retornará: "hell"

$pos(cadena,sub_cadena)

Devuelve la posición en que una sub_cadena comienza dentro de una cadena. Por ejemplo:

$pos(hello,el) Devolverá: 2

$pos(hello,la) Devolverá: $null

$rand(v1,v2)

Devuelve un número o letra aleatorio comprendido en el rango [v1-v2] . Por ejemplo:

$rand(1,4) Devolverá cualquier número entre 1 y 4, ambos inclusive

$remove(cadena,sub_cadena)

Devuelve la primera cadena, de la que habrá suprimido la primera ocurrencia expresada en sub_cadena. Por ejemplo:

$remove(abcdefg,cd) Devolverá: abefg

$replace(texto,cadena,reemplazo)

Busca una cadena dentro de un texto, y la reemplaza por otra especificada. Por ejemplo:

$replace(abcdefg,cd,xyz) Devolverá: abxyzefg

$round(número,D)

Devuelve un número especificado, con solo los D primeros decimales. Por ejemplo:

$round(3.14159,2) Devolverá: 3.14

$strip(texto)

Devuelve un texto del que eliminará los colores, negrita y subrayado.

$str(texto,N)

Devuelve un texto dado repetido N veces.

$str(ho,3) Devolverá: "hohoho"

IDENTIFICADORES DE FICHEROS

$alias(N)

Devuelve el nombre de enésimo fichero de alias cargado en ese momento.

$alias (nombre_fichero)

Devuelve $null si el fichero de alias no está cargado en ese momento.

Ejemplos:

$alias(0) Devuelve el número de ficheros de alias cargados en ese momento.

$alias(2) Devuelve el nombre del segundo fichero de alias cargado en ese momento.

$alias(moo.txt) Devuelve $null si el fichero de alias no está cargado, o "moo.txt" si lo está.

$dir y $file

Presentan un cuadro de dialogo desde el que permiten seleccionar un fichero para ser utilizado dentro de la especificación de un alias. $dir presenta un dialogo desde donde se puede acceder a toda la estructura de ficheros, mientras que $file presenta solo los ficheros contenidos dentro de un determinado directorio. En ambos casos se puede especificar mediante el comodín * qué tipos de ficheros se desea que aparezcan.

El formato de ambos es:

$dir[="Texto"] <path y nombre de fichero>

$file[="Texto"] <path y nombre de fichero>

Por ejemplo, podemos definir una opción de popups que reproduzca los fichero de tipo midi de un directorio llamado "midis":

Música/splay $file="Selecciona la música" c:\midis\*.mid

Nota: no usar estos especificadores para seleccionar un fichero a enviar por DCC, puesto que este comando lleva ya incorporado su propio dialogo de selección.

$exists(fichero)

Devuelve $true si el fichero existe, y $false si no es así.

$exists(c:\mirc\mirc.exe) Devolverá $true o $false.

$findfile(directorio, tipo_de_fichero, número)

Busca en el directorio especificado (y en todos sus subdirectorios), a todos los ficheros de un determinado tipo, y presenta el path y el nombre del que tiene el número de orden indicado. Si el número es 0 presentará toda la lista de ficheros encontrados de ese tipo. Por ejemplo:

$findfile(c:\mirc,*.exe,1) Devolverá: c:\mirc\mirc.exe

$findfile(c:\, auto*.*,1) Devolverá: c:\autoexec.bat

$getdir

Devuelve el directorio que tengamos especificado en el diálogo DCC options, como destino por defecto para las recepciones DCC.

$getdir(tipo_fichero)

Devuelve el directorio que tengamos especificado en el diálogo DCC options, como destino para las recepciones DCC de ficheros del tipo especificado. Por ejemplo:

$getdir(*.txt)

$lines(filename)

Devuelve el número de líneas que tiene un fichero de texto.

$lines(c:\irc\kicks.txt) Devolverá el número de filas del fichero: c:\irc\kicks.txt

$lof(fichero)

Devuelve el tamaño en bytes de un fichero especificado.

$logdir

Devuelve el directorio especificado en la sección Loggin del diálogo File/options.

$mididir

Devuelve el directorio especificado para los ficheros Midi en la sección Sound Requests del diálogo File/options.

$nofile(fichero)

Devuelve el path o ruta de un fichero especificado. Por ejemplo:

$nofile(c:\mirc\mirc32.exe) Devolverá: c:\mirc\

$nopath(fichero)

Devuelve el nombre del fichero especificado, sin incluir el path. Por ejemplo:

$nopath(c:\mirc\mirc.exe) Devolverá mirc.exe

$mircdir

Devuelve el path donde se encuentra actualmente el programa mIRC.

$mircini

Devuelve el nombre del fichero .ini principal del directorio donde se encuentra el mIRC. Este es normalmente: mirc.ini.

$read

Lee una línea de un fichero y la inserta dentro del alias en que se esté utilizando. Su formato es:

$read [-l] [-stexto] <fichero>

Ejemplos:

/say $read c:\funny.txt

Imprimirá en pantalla una línea aleatoria del fichero c:\funny.txt.

/say $read -l24 c:\funny.txt

Imprimirá la línea 24 del fichero.

/pateo /kick # $1 $read kicks.txt

Hará un kick del nick especificado dando como razón una línea elegida al azar del fichero "kicks.txt"

/say $read -smirc info.txt

Busca una línea dentro del fichero "info.txt" que comience por "mirc", e imprime en pantalla el resto de la línea.

NOTA: si la primera línea del fichero es un número, el programa entenderá que este representa el número total de líneas del fichero, esto acelerará considerablemente la ejecución del $read.

$readini

Lee información de un fichero .ini e inserta la fila correspondiente dentro del alias. El formato es:

$readini <fichero> <sección> <item>

Por ejemplo:

/echo $readini mirc.ini mIRC nick

Presentará nuestro nick actual tomándolo del fichero mirc.ini

$script(N/fichero)

Devuelve el nombre del enésimo fichero de script cargado. Si se especifica un nombre de fichero de script en lugar de un número, devolverá este mismo nombre, o $null si dicho fichero no se encuentra cargado. Ejemplos:

$script(0) Devuelve el número de ficheros de script cargados.

$script(2) Devuelve el nombre del segundo fichero de script.

$script(moo.txt) Devuelve $null si el fichero no está cargado, o moo.txt si lo está.

$wavedir

Devuelve el directorio especificado en la sección Sound Requests del diálogo File/options.

IDENTIFICADORES DE NICKS Y DIRECCIONES:

$address(nick,tipo)

Busca en la lista interna de direcciones la dirección asociada al nick especificado. Los tipos son los que se describen en el identificador $mask. Por ejemplo:

$address(nick,1) Devuelve el formato: nick!User_ID@dominio.host

Si la lista interna no contiene el nick especificado se devolverá $null.

$comchan(nick,nº)

Devuelve los canales en que nos encontramos nosotros junto al nick especificado. Por ejemplo:

$comchan(nick,0) Devuelve todos los canales en que estamos nosotros y ese nick.

$comchan(nick,1) Devuelve el primer canal en que nos encontramos junto a ese nick

$ial(máscara,nº)

Devuelve direcciones de la lista interna de direcciones.

Propiedades: nick, user, host, addr

Ejemplos:

$ial(*!*@*.demon.co.uk,0) Devuelve todas las direcciones que concuerdan con la máscara especificada.

$ial(*!*@*.demon.co.uk,3) Devuelve la tercera dirección de la lista que concuerda con la máscara especificada.

$ial(*!*@*.com,0).nick Devuelve el nick que concuerda con la máscara.

$ial(*!*@*.com,4).user Devuelve el User ID que concuerda con la máscara.

Para escanear todas las direcciones de la lista interna se puede usar: $ial(*,nº).

$ialchan(máscara,#canal,nº)

Igual al anterior pero solo referido a la lista de ocupantes de un canal especificado.

$level(address)

Busca dentro de nuestra lista de acceso remoto el usuario con la dirección especificada y devuelve su nivel de acceso.

$link(N)

Devuelve el enésimo server de las lista de servers enlazados en la actual red de IRC.

Propiedades: addr, ip, level, info

Ejemplos:

$link(0) Devuelve el número de servers enlazados

$link(1) Devuelve el primer server de la lista de links

$mask(dirección,tipo)

Devuelve la máscara correspondiente al tipo especificado, para una dirección dada. Por ejemplo:

$mask(nick!khaled@mardam.demon.co.uk,1)

Devolverá: *!*khaled@mardam.demon.co.uk

$mask(nick!khaled@mardam.demon.co.uk,2)

Devolverá: *!*@mardam.demon.co.uk

Los tipos aplicables son los siguientes:

  • 0: *!User ID@host.dominio
  • 1: *!* User ID@host.dominio
  • 2: *!*@host.dominio
  • 3: *!* User ID@*.dominio
  • 4: *!*@*.dominio
  • 5: nick! User ID@host.dominio
  • 6: nick!* User ID@host.dominio
  • 7: nick!*@host.dominio
  • 8: nick!* User ID@*.dominio
  • 9: nick!*@*.dominio

La utilidad de este identificador es su uso en otros identificadores y comandos.

$me

Devuelve nuestro actual nick.

$nick(#canal,N)

Devuelve el enésimo nick de la lista de nicks del canal especificado. Si ponemos 0 devolverá en número de ocupantes del canal.

$nopnick(#canal,N)

Devuelve el enésimo nick de la lista de nicks que no tiene estatus de operador del canal especificado. Si ponemos 0 devolverá en número de operadores del canal

$notify(N)

Igual a los anteriores pero referido a los nicks de nuestra lista de notificaciones.

$vnick(#canal,N)

Igual a los anteriores pero referido a los nicks que tengan voz dentro del canal especificado

$nvnick(#canal,N)

Igual a los anteriores pero referido a los nicks que no tengan voz dentro del canal especificado

$opnick(#canal,N)

Igual los anteriores, pero referido solo a los nicks que tengan estatus de operadores del canal

$snicks

Devuelve en una línea, separados por comas, todos los nicks que tengamos seleccionados de la lista de nicks del canal.

IDENTIFICADORES DE VENTANAS:

$active

Devuelve el nombre de la ventana activa..

$chan(N/#canal)

Devuelve información sobre los canales en que nos encontramos.

Propiedades: topic, mode, key, limit

Si se especifica un numero en vez de un canal, devuelve el nombre de ese canal.

$chan(0) Devuelve el número de canales en que nos encontramos.

$chan(2) Devuelve el nombre del segundo canal en que nos encontramos.

$chan(2).key Devuelve la clave del segundo canal en que nos encontramos.

También podemos especificar un nombre de canal, pero solo devuelve información sobre este si nos encontramos dentro de él.

$chan(#mIRC).mode Devuelve los modos del canal #mirc.

$chat(N/nick)

Devuelve información sobre las ventanas de DCC chat abiertas.

Propiedades: ip, status

Por ejemplo:

$chat(2).ip Devuelve la IP del segundo DCC chat activo.

$fserv(N/nick)

Devuelve información sobre las ventanas abiertas del servidor de ficheros.

Propiedades: ip, status, cd (directorio abierto)

$get(N/nick)

Devuelve información sobre los DCC get en curso (recepción de ficheros).

Propiedades: ip, status, file, size, rcvd, cps, pc

Ejemplos:

$get(0) Devuelve el número de dcc gets en curso.

$get(2) Devuelve el nick que envía el segundo DCC get activo

$get(2).rcvd Devuelve el número de bytes recibidos hasta el momento en el segundo dcc get.

$get(2).cps Devuelve el número de caracteres por segundo que se están recibiendo en la segunda transmisión de ficheros

$get(3).pc Devuelve el porcentaje transmitido en la tercera recepción en curso.

$query(N/nick)

Devuelve el nick o la dirección del enésimo query abierto.

Propiedad: address

Ejemplos:

$query(0) Devuelve el número de querys abiertos.

$query(2) Devuelve el nick del segundo query.

$query(1).address Devuelve la dirección del primer query.

$send(N/nick)

Devuelve información sobre los envíos de ficheros en curso (DCC sends).

Propiedades: ip, status, file, size, sent, cps, pc

Ejemplos:

$send(0) Devuelve el número de ficheros que se están enviando.

$send(2) Devuelve el nick de destino del segundo envío.

$send(1).sent Devuelve el número de bytes enviados en el primer DCC en curso.

$send(3).pc Devuelve el porcentaje transferido en el tercer envío en curso.

$send(3).status Devuelve el estado (activo, inactivo, o en espera) del tercer send en curso.

 

IDENTIFICADORES DIVERSOS:

$away

Devuelve el valor $true (verdadero) o $false (falso) Si estamos en estado de away o no.

$cb

Devuelve los primeros 256 caracteres contenidos en el portapapeles.

$cr

Devuelve el carácter de retorno de carro. Es equivalente a poner: $chr(13)

$editbox(window)

Devuelve el texto contenido en la caja de edición de una determinada ventana.

$email

Devuelve la dirección de mail especificada en la correspondiente casilla del dialogo File/Setup.

$host

Devuelve el nombre del actual Local host.

$ignore(N)

Devuelve la dirección del enésimo elemento de la lista de ignores.

Propiedades: type

$ignore(0) Devuelve el número de elementos incluidos en la lista de ignores.

$ignore(1) Devuelve la dirección del primer elemento de la lista de ignores.

$ignore(2).type Devuelve el flag del segundo elemento de la lista de ignores.

$inmidi

Devuelve $true si se está reproduciendo un fichero midi, de lo contrario devuelve $false.

$ip

Devuelve nuestra dirección IP.

$lf

Devuelve el carácter de salto de línea. Equivale a: $chr(10).

$port

Devuelve el número del puerto del server en el que estamos conectados.

$server

Devuelve el nombre del server al que estamos conectados, o $null si estamos desconectados.

$server(N)

Devuelve la dirección del enésimo server de la lista de servers de File/Setup/IRC Server.

Propiedades: desc (descripción), port (puerto), group (grupo)

$server(0) Devuelve el número de servers de la lista.

$server(2) Devuelve la dirección del segundo server.

$server(2).desc Devuelve la descripción del segundo server.

$server(3).port Devuelve el puerto de conexión especificado para el tercer server.

$url

Devuelve la dirección URL de la página actualmente cargada en el navegador. Ejemplo:

/say Estoy viendo la página: $url ... os la recomiendo!

$usermode

Devuelve nuestros actuales modos de usuario.

$version

Devuelve la versión del mIRC en uso.

$+

Este identificador insertado en una línea de instrucción eliminará el espacio el espacio en blanco que se encuentra a su derecha, y el que se encuentra a su izquierda.

$nº-

Se puede usar $1 $2 ... $N para referirse a los parámetros o palabras individuales de una línea de comando. Además es posible especificar $nº- para referirse al parámetro o palabra de la posición especificada, y todos los que le siguen, y $nº_1-n_2º para referirse a todas la palabras comprendidas entre dos posiciones especificadas

$address

Devuelve la dirección de un usuario asociado a un evento, en la forma: User_ID@host.dominio.

$fulladdress

Devuelve la dirección de un usuario asociado a un evento, en la forma: nick!User_ID@host.dominio.

$group(N/#nombre)

Devuelve el nombre o estatus de un grupo de un script.

Propiedades: status

$group(0) Devuelve el número de grupos del script.

$group(1) Devuelve el nombre del primer grupo del script.

$group(1).status Devuelve el estatus del primer grupo: on o off.

$group(#name) Devuelve el estatus del grupo #name

$maddress(máscara)

Busca el la lista interna de usuarios y devuelve la dirección del primer usuario que corresponde con la máscara especificada

$nick

Devuelve el nick de un usuario asociado a un evento.

$ulevel

Devuelve el nivel de acceso remoto de un usuario asociado a un evento.